#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<assert.h>
//int my_strlen(char const * p)
//{
//	assert (p != NULL);
//	int count = 0;
//	while (*p!='\0')
//	{	 
//		count++;
//		p++;
//	}
//	return count;
//
//}
//int main()
//{
//
//	char arr[] ="abcdefg";
//	int ret = my_strlen(arr);
//	printf("%d\n", ret);
//
//	return 0;
//}
//int main()
//{
//	int i = 0;
//	int arr[] = { 1,2,3,4 };
//	int* p = arr;
//
//	for (i = 0; i < sizeof(arr) / sizeof(arr[0]); i++)
//	{ 
//		printf("%d ",*p);
//		p++;
//			
//	}
//	return 0;
//}
//写一个函数打印arr数组的内容，不使用数组下标，使用指针。
//arr是一个整形一维数组。
//void reverse_string(char * p,int sz)
//{
//	int left = 0;
//	int right = sz - 2;
//	char temp=0;
//	while (left < right)
//	{
//		
//		temp = *(p + right);
//		*(p + right) = *(p + left);
//		*(p + left) = temp;
//	
//		left++;
//		right--;
//
//	}
//
//	
//
//}
//int main()
//{
//	char arr[] = { "abcdefg" };
//	int sz = sizeof(arr) / sizeof(arr[0]);
//	reverse_string(arr,sz);
//	printf("%s", arr);
//
//	return 0;
//}
//写一个函数，可以逆序一个字符串的内容(方法一)
//void reverse_string(char *p)
//{
//	char* left = p;
//	char* right = p + strlen(p) - 1; 
//	char temp = 0;
//	while (left < right)
//	{
//		temp = *right;
//		* right = * left;
//		*left= temp;
//			
//		left++;
//		right--;
//
//	}
//
//}
//int main()
//{
//	char arr [] = {"abcdefg"};
//	reverse_string(arr);
//	printf("%s", arr);
//
//
//
//	return 0;
//}
//写一个函数，可以逆序一个字符串的内容(方法二)
//void reverse_string(char *p)
//{
//	int left = 0;
//	int right =  strlen(p) - 1; 
//	char temp = 0;
//	while (left < right)
//	{
//		temp = *(p + right);
//		*(p + right) = *(p + left);
//		*(p + left) = temp;
//
//		left++;
//		right--;
//
//	}
//			
//
//}
//int main()
//{
//	char arr [] = {"abcdefg"};
//	reverse_string(arr);
//	printf("%s", arr);
//
//
//
//	return 0;
//}
//写一个函数，可以逆序一个字符串的内容(方法三)
void reverse_string(char * s)
{
	if (s[0] == '\0')
		return ;
	int tmp = 0;
	int left = 0;
	int right = strlen(s) - 1;

	tmp = s[right];
	s[right] = s[left];
	s[left] = tmp;



}
